package service;

import java.io.InputStream;
import java.util.List;

import net.sf.json.JSONArray;

import dao.FeedDAO;
import domain.Feed;

/**
 * 订阅Service接口.
 * <p>
 * 创建日期：2010-07-01<br>
 * 创建人：Xiyt<br>
 * 修改日期：<br>
 * 修改人：<br>
 * 修改内容：<br>
 * 
 * @author Xiyt
 * @version 1.0
 */
public interface FeedService {

	/**
	 * 设定订阅Dao
	 * */
	public void setFeedDao(FeedDAO feedDao);

	/**
	 * 查询订阅数量
	 * @param paramNote 订阅
	 * @return int 订阅数量
	 */
	public int countByCriteria(Feed paramFeed);

	/**
	 * 获得订阅
	 * @param feedId 订阅ID
	 * @return Feed 订阅
	 */
	public Feed selectByPrimaryKey(Integer feedId);

	/**
	 * 查询订阅列表
	 * @param paramNote 订阅
	 * @return List 订阅列表
	 */
	public List<Feed> selectByCriteria(Feed paramFeed);
	
	/**
	 * 查询订阅树
	 * @return JSONArray 分类树
	 */
	public JSONArray selectFeedForTree(String parentId);

	/**
	 * 添加订阅
	 * @param feed 订阅
	 */
	public void insert(Feed feed);

	/**
	 * 修改订阅
	 * @param feed 订阅
	 */
	public void update(Feed feed);

	/**
	 * 删除订阅
	 * @param feedId 订阅ID
	 * @param feedFilePath 订阅文件路径
	 */
	public void delete(int feedId, String feedFilePath) throws Exception;

	/**
	 * 更新订阅信息
	 * @param feedId 订阅ID
	 * @param feedFilePath 订阅文件路径
	 */
	public void refreshFeed(int feedId, String feedFilePath) throws Exception;

	/**
	 * 导入订阅列表
	 * @param feedId 订阅ID
	 * @param feedFilePath 订阅文件路径
	 */
	public void importOpml(String feedId, InputStream in) throws Exception;

	/**
	 * 导出订阅列表
	 * @param feedId 订阅目录ID
	 * @param templateFilePath 模板文件路径
	 */
	public void exportOpml(String feedId, String templateFilePath) throws Exception;
}
